home *** CD-ROM | disk | FTP | other *** search
/ Amiga CD-Sensation: Golden Games / Amiga CD-Sensation - Ausgabe 2 - Golden Games (1996)(GTI - Schatztruhe)(DE)[!].iso / Shoot'em Up / TankHunter / Sources.lha / sources / GetWall.a < prev    next >
Text File  |  1992-10-17  |  874b  |  86 lines

  1.     section text,code
  2.  
  3.     xref    _Mask
  4.     xref    _gplane
  5.  
  6.     procstart
  7.     xdef    @GetWall
  8. @GetWall:
  9.     movem.l D2/D3,-(sp)
  10.  
  11.     move.w    D2,D0
  12.     asr.w    #$03,D0
  13.  
  14.     mulu    #40,D3
  15.     add.w    D3,D0
  16.  
  17.     not.b    D2
  18.  
  19.     lea    _Mask(A4),A0
  20.     btst    D2,(A0,D0)
  21.     bne    set
  22.  
  23. notset    moveq    #0,D0
  24.     movem.l (sp)+,D2/D3
  25.     rts
  26.  
  27. set    moveq    #1,D0
  28.     movem.l (sp)+,D2/D3
  29.     rts
  30.     procend
  31.  
  32.     procstart
  33.     xdef    @ClearWall
  34. @ClearWall:
  35.     movem.l D2/D3,-(sp)
  36.  
  37.     move.w    D2,D0
  38.     asr.w    #$03,D0
  39.  
  40.     mulu    #40,D3
  41.     add.w    D3,D0
  42.  
  43.     not.b    D2
  44.  
  45.     lea    _Mask(A4),A0
  46.     bclr    D2,(A0,D0)
  47.  
  48.     movem.l (sp)+,D2/D3
  49.     rts
  50.     procend
  51.  
  52.     procstart
  53.     xdef    @WritePixel
  54. @WritePixel:
  55.     movem.l D3,-(sp)
  56.  
  57.     move.w    D0,D3
  58.     asr.w    #$03,D3
  59.  
  60.     mulu    #40,D1
  61.     add.w    D1,D3
  62.  
  63.     not.b    D0
  64.  
  65.     moveq    #0,D1
  66.     lea.l    _gplane(A4),A0
  67. wploop    move.l    (A0)+,A1
  68.  
  69.     btst    D1,D2
  70.     beq    wpclear
  71.  
  72. wpset    bset    D0,(A1,D3)
  73.     bra    wpend
  74.  
  75. wpclear bclr    D0,(A1,D3)
  76.  
  77. wpend    addq.w    #1,D1
  78.     cmp.w    #4,D1
  79.     bmi    wploop
  80.  
  81.     movem.l (sp)+,D3
  82.     rts
  83.     procend
  84.  
  85.     END
  86.